pub fn dp_rec_mc(amount: u32) -> u32 {
    let coins = vec![100, 50, 30, 20, 10, 5, 2, 1];
    let mut remaining_amount = amount;
    let mut count = 0;
    
    for coin in coins {
        if remaining_amount >= coin {
            let num_coins = remaining_amount / coin;
            count += num_coins;
            remaining_amount %= coin;
        }
    }
    
    count
}
